A variety of systems currently exist for rendering computer animation images. Such systems have their disadvantages. The most common disadvantages of such systems are that they require very large amounts of computer resources, and are thus slow to operate. This is due to the fact that these systems typically perform a high number of data calculations for each of the pixels in the rendered image.
In one system, 3D objects are projected onto pixels in multiple passes. In each pass the pixels are shaded with colors, and the colors are blended into an accumulation buffer. A number of passes are required over the data of each pixel such that effects such as antialiasing, soft shadows, motion blur and depth of field can be properly rendered. A disadvantage of this approach is that since each pixel is shaded during every pass, the rendering time increases linearly with the number of passes.
Alternatively, instead of shading each pixel during every pass, a “deferred sample” can be generated which contains the inputs needed for shading (e.g.: material properties, texture coordinates, surface normal, etc.). Each pixel in a deferred accumulation buffer stores a list of these samples. Before a new sample is added to a list, it is compared with the samples from a previous pass, and it belongs to the same material as the previous sample, the two samples may be combined (with their attributes e.g.: material properties, texture coordinates, surface normal, etc. averaged). Because samples belonging to matching materials have been combined, the number of shading evaluations required can be substantially reduced. Unfortunately, this system requires a lot of computer memory since the deferred samples may be quite large. A further problem with this system is aliasing. Specifically, jagged textures or shallow edges may result when combined samples within a pixel would have been textured or lit differently had they not been combined. Another problem, shared with the first system, is that filtering is limited to a box filter.